This page last changed on Mar 20, 2009 by mpb6001.

Update table with primary keys (no joins, one or more rows)

  • Acceptance criteria:
    • varchars, ints supported
    • "clean" input accepted
    • exceptions accepted if user input is bad
Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
3 Design analysis 2 0
.95 Matt
Complete
4 Implementation and refactoring 4
0 4 Paul
Complete

  Update Servlet implementation
3
0
2.8 Matt
Complete
  Update Servlet unit testing
1 0 1 Paul
Complete
2 Setup test environoment
  • Database running
  • Example tables with example data
1.5 0
2.4 Eugene
Complete
5 Write acceptance tests 2 2   Eugene
Impediment
(Can not update server.xml)
1 CVS public repository
1 0 .75
Chris
Complete
     
     
Total   14.5 2
11.9   Points Completed: 21

Update table without primary key

  • Acceptance criteria:
    • warning provided if multiple rows will be updated
    • cancel function provided
    • varchars, ints supported
    • "clean" input accepted
    • exceptions accepted if user input is bad
Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
  Design Analysis
3 0 3 Eugene
Complete
  Implementation and refactoring
3.5 0 3 Eugene
Complete

Providing warning to user if multiple rows are being updated
1.25 0
2 Eugene
Complete
  Write acceptance tests
2 2   Eugene
Impediment
(Can not update server.xml)
  (Refresh) DBManager Unit Testing
1 0 2.5
Paul
Complete
  (Refresh) Servlet Unit Testing
1 0 1.5
Paul
Complete
             
Total   11.75 2 12  

Design just came as extension of previous update story. Only needed to send old values for WHERE clause

Update view of table with primary key

  • Acceptance criteria:
    • varchars, ints supported
    • "clean" input accepted
    • exceptions accepted if user input is bad
  • Issues:
    • Can we find out if there are primary keys?
    • Can we use JDBC MetaData?
    • Oracle vs. MySQL JDBC driver
Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
  Research/spike relationship between tables and views when updating rows 1.5
.5 1 Paul
In Progress

  Create test VIEWs
.5
0 .5 Paul
Complete
  Design Analysis
4
2
2 Paul
In Progress

  Implementation and refactoring 3.5
3.5
     
  Unit Testing
2
2
     
  Write acceptance tests
2
2      
             
Total   13
9.5
3.5    

Notes

There are issues with updating views of multiple tables.
The approach we think will work is to query for the view definition in vendor specific manor, (MySQL has INFORMATION_SCHEMA table, but slightly different for oracle). Allows for a mapping aliases in the view results to the select statement they map to.

E.g.:
Select C, A FROM view1;
View has columns A, B, C, D, where A maps to t1.c1, B to t1.c2, C to t2.c2, D to t2.c1
Note that the order of columns, and number is not exact from the select and view, and the view's columns could be from other views, meaning the mapping has to be semi-recursive.

Overall: View columns in the select are mapped to the real view columns, then to the table columns they come from.

Update using author provided information (column names, sql, ...)

- Note: "user provided information" will be refined during sprint. Currently considering providing a list of column names.

Priority
Description Time Estimate
Time remaining
Time Spent
Status
  Design Analysis
3.5 0
2.5
Complete

  Implementation and refactoring
3 0
.5
 Complete

  Get parameters from macroinfo
1
0
1
Complete

  Presentation
3 0
3
Complete

  Design images
1 0
1.5
Complete

  Insert values into produced javascript, send to update servlet as 'keys
*Check for columns existing, if not show warning*
2
0
.5
Complete
  Generate SQL Statement
1
0
.5
Complete

  UI Refactoring 2 0
2.7
Complete
  Edit Row Cancel
1 0 1.5
Complete

  Make User supplied columns uneditable (when editing row) - modify javascript logic to add input elements to check both primary keys AND identifying columns
1.5
0
1
Complete
  Unit testing
1.5
0
1.5
Complete
  Write acceptance tests
2 0
.5
Complete
           
Total   22.5
0
16.7
 



Notes


UI refactoring:

  • Sorting columns
  • In cell click for edit

TODO

*make user supplied rows uneditable
*where in callback does the old data replacement go

Update with complex datatype support

Edit

Priority
Description Size (Point) Estimate
Time Estimate
  Design Analysis
2
1
  Implementation, unit testing (TDD) and refactoring
1
1
  Write acceptance tests
1
1
       
Total   4 3

Issues:

  • Updating a view without a primary key 
  • Define author provided information

Use available functionality on Oracle 10g

Edit

Professor Hawker had stated there are various providers (ITS, CS dept) for oracle. Personal licenses are available. 

Potential issues are:

  • Connectivity
  • Syntax of queries
  • Massive changes required
  • JDBC support for metadata information
  • Dual database support (need for abstraction)
Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
1 Investigate install options
1
0
.75
Chris
Completed

2 Install/get connection to a database
1
0
4

Completed

3 Duplicate/Separate tests into an oracle and MySQL suites 3



Impediment
OracleResultSetMetaData interface does not implement the getSchemaName()
and getTableName() methods because underlying protocol does
not make this feasible.
http://www.engr.mun.ca/~theo/JavaCC-Tutorial/javacc-tutorial.pdf


SELECT syntax - http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10002.htm#SQLRF01702
4
Run tests and fix errors
3
   
Impediment

5
Issue #3 - IE support
1.5
0
1.5
Paul
Complete

6
Issue #8 - ID columns hidden value
.75
0
.75
Paul
Complete
7
Issue #4 - Sorting after refresh
1.5
0
1
Paul
Complete
8
Issue #7 - Single row update
1
0
.75
Paul
Complete
9 Issue #15 - Resource paths
.75
0
.75
Paul
Complete
10
Issue #14 - error handling
.5
0
.25
Paul
Complete
             
Total   14
0
5.75


Update view with primary key in oracle

Edit

This user story depends on getting oracle working first. We will refrain from estimation until we know how to proceed with oracle in general.

Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
3 Design analysis




4 Implementation and refactoring




5 Write acceptance tests




     
     
Total  




Edit

Update with any varchar string

Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
1
Setup test tables in Oracle and MySQL
(for varchars, numbers and dates)
1
0
.75
Paul + Matt
Complete
2
Test Driven Experimentation
1.5
0
2.5
Paul + Matt
Complete

3
Format Validation 1.5
0
1.5
Paul + Matt
Complete
4
Write Tests
2.5
0
2.0
Paul + Matt
Complete
5
Resolving Issues (refactoring)
2
0
0
Paul + Matt
Complete
     
     
Total   8.5
0
6.75


Datatype Test Tables

Notes

  • Overflow for datatype size
  • Need to handle character escape on cancel
  • Null input messes with WRS XML
  • Can not update MySQL query with a blob or text showing
  • Doing a edit, saving, then doing an edit in the same cell, then saving causes an error

Edit

Update with any number, integer, decimal

Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
1
Test Driven Experimentation
2
0
1
Paul + Matt
Complete

2
Format Validation 1.5
0
3
Paul + Matt
Complete
3
Write Tests
2.5
0
1
Paul + Matt
Complete
4
Resolving Issues (refactoring)
2
0
1.25
Paul + Matt
Complete
     

   
Total   8
0
6.25
 

Datatype Test Tables

Edit

Update with any date or time-stamp

Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
1
Test Driven Experimentation
2
0
2
Chris & Eugene
Complete
2
Input Widget
3
0
2
Chris & Eugene
Complete
3
Format Validation 2
0
.5
Chris & Eugene
Complete
4
Write Tests
2
0
2
Chris & Eugene
Complete
5
Resolving Issues (refactoring)
2
0
3
Chris & Eugene
Complete
     
     
Total   11
0
9.5
 

Edit

Only users with edit privileges can edit

Priority
Description Time Estimate
Time Remaining
Actual Time
Last Updated By
Status
1
Investigate Methods
2
0
.5
Chris & Eugene
Complete

2
View only reduced version of table
3
0
.5
Chris & Eugene
Complete
3
Split up javascript files
2
0
2
Chris & Eugene 
Complete
4
Server side restrictions to editing
3
0
2
Chris & Eugene
Complete







Total
10
0
5


Document generated by Confluence on May 21, 2009 10:23